package com.neouton.crm.paymentPlan.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.neouton.common.entity.BaseEntityVO;
import com.neouton.crm.approval.entity.ApprovalVO;
import com.neouton.crm.entity.SysUserEntity;
import com.neouton.crm.pm.entity.PurchaseOrderVO;
import com.neouton.crm.supplier.entity.SupplierVO;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 付款计划
 * @TableName payment_plan
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@TableName("payment_plan")
public class PaymentPlan extends BaseEntityVO {
    /**
     * 付款计划id
     */
    private Integer payPlanId;

    /**
     * 机会点ID
     */
    private Integer opportunityId;

    /**
     * 供应商信息
     */
    private SupplierVO supplier;

    /**
     * 供应商信息
     */
    private Integer supplierId;

    /**
     * 采购付款
     */
    private float purchasePay;
    /**
     * 收票付款
     */
    private float receiptPay;
    /**
     * 采购单号
     */
    private String purchaseNo;
    /**
     * 采购单id
     */
    private Integer purchaseId;


    private Integer purchaseOrderId;
    /**
     * 采购名称
     */
    private String purchaseTopic;
    /**
     * 采购名称
     */
    private String purchaseOrderTopic;
    /**
     * 计划期次
     */
    private String planPeriod;

    private String planPeriodStr;

    private List<String> planPeriods;
    /**
     * 款项日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date moneyDate;

    private String MoneyDateStr;
    /**
     * 付款金额
     */
    private String paymentMoney;

    private String paymentMoneyPage;

    /**
     * 冲销金额
     */
    private String eliminationMoney;

    /**
     * 开户名
     */
    private String accountName;

    /**
     * 开户行
     */
    private String accountBank;

    private String accountCard;

    /**
     * 负责人
     */
    // private Integer head;
    private SysUserEntity head;
    /**
     * 所有人
     */
    // private Integer owner;
    private SysUserEntity owner;
    /**
     * 备注
     */
    private String remark;

    /**
     * 是否付款 0.已付  1.未付
     */
    private Integer payIsNot;

    private String payIsNotStr;

    /**
     * 收到发票 0.已收票 1.未收票 2.无需收票
     */
    private Integer receiveInvoice;
    private String receiveInvoiceName;

    private String receiveMoney;

    private String payedMoney;

    private String receiveMoneyPage;

    private String payedMoneyPage;

    /**
     * 付款方式
     */
    private Integer payMethod;

    private String payMethodStr;

    /**
     * 付款公司id
     */
    private Integer payCompany;

    private String payCompanyStr;

    /**
     * 款项属性
     */
    private Integer payAttr;

    private String payAttrStr;



    /**
     * 审批主表ID
     */
    private Integer approvalId;

    /**
     * 关联审批记录
     */
    private ApprovalVO approval;


    /**
     * 关联采购单
     */
    private PurchaseOrderVO purchaseOrder;

    /**
     * 日期集合
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private List<Date> moneyDateList;

    /**
     * 付款集合
     */
    private List<String> paymentMoneyList;

    /**
     * 冲销集合
     */
    private List<String> eliminationMoneyList;

    /**
     * 排序字段
     */
    private String orderByProp;

    /**
     * 排序类型
     */
    private String order;

    private Integer projectManageId;


    /**
     * 采购类别
     */
    private Integer purchaseCategories;

    private String purchaseCategoriesStr;

    /**
     * 项目名称
     */
    private String projectManageTheme;

    private Integer dateOption;

    private Integer headId;
}